Review and validate (or generate, if necessary) the set of application principles. These will normally form part of an
overarching set of architecture principles. Guidelines for developing and applying principles, and a sample set of
application principles, are given in Part
III, Architecture Principles .
Select relevant Application Architecture resources (reference models, patterns, etc.) from the Architecture Repository,
on the basis of the business drivers, the stakeholders, and their concerns.
Select relevant Application Architecture viewpoints (for example, stakeholders of the applications - viewpoints
relevant to functional and individual users of applications, etc.); i.e., those that will enable the architect to
demonstrate how the stakeholder concerns are being addressed in the Application Architecture.
Identify appropriate tools and techniques to be used for capture, modeling, and analysis, in association with the
selected viewpoints. Depending on the degree of sophistication warranted, these may comprise simple documents or
spreadsheets, or more sophisticated modeling tools and techniques.
Consider using platform-independent descriptions of business logic. For example, the OMG's Model Driven Architecture
(MDA) offers an approach to modeling Application Architectures that preserves the business logic from changes to the
underlying platform and implementation technology.
Determine Overall Modeling Process
For each viewpoint, select the models needed to support the specific view required, using the selected tool or method.
Examples of applications models are:
-
The TeleManagement Forum (TMF) - www.tmforum.org - has developed detailed applications models relevant to the
Telecommunications industry.
-
The Object Management Group (OMG) - www.omg.org - has a number of vertical Domain Task Forces developing software models
relevant to specific vertical domains such as Healthcare, Transportation, Finance, etc.
Ensure that all stakeholder concerns are covered. If they are not, create new models to address concerns not covered,
or augment existing models (see above).
The recommended process for developing an Application Architecture is as follows:
-
Understand the list of applications or application components that are required, based on the baseline Application
Portfolio, what the requirements are, and the business architecture scope
-
Identify logical applications and the most appropriate physical applications
-
Develop matrices across the architecture by relating applications to business service, business function, data,
process, etc.
-
Elaborate a set of Application Architecture views by examining how the application will function, capturing
integration, migration, development, and operational concerns
The level and rigor of decomposition needed varies from enterprise to enterprise, as well as within an enterprise, and
the architect should consider the enterprise's goals, objectives, scope, and purpose of the enterprise architecture
effort to determine the level of decomposition.
The level of granularity should be sufficient to enable identification of gaps and the scope of candidate work
packages.
Identify Required Catalogs of Application Building Blocks
The organization's Application Portfolio is captured as a catalog within the Architecture Repository. Catalogs are
hierarchical in nature and capture a decomposition of a metamodel entity and also decompositions across related model
entities (e.g., logical application component -> physical application component ->] information system service).
Catalogs form the raw material for development of matrices and diagrams and also act as a key resource for portfolio
managing business and IT capability.
The structure of catalogs is based on the attributes of metamodel entities, as defined in Part IV, Content Metamodel .
The following catalogs should be considered for development within an Application Architecture:
-
Application Portfolio catalog
-
Interface catalog
Identify Required Matrices
Matrices show the core relationships between related model entities.
Matrices form the raw material for development of diagrams and also act as a key resource for impact assessment.
Once the baseline Application Portfolio has been assembled, it is necessary to map the applications to their purpose in
supporting the business. The initial mapping should focus on business services within the Business Architecture, as
this is the level of granularity where architecturally significant decisions are most likely to be needed.
Once applications are mapped to business services, it will also be possible to make associations from applications to
data, through the business-information diagrams developed during Business Architecture.
If readily available, baseline application data models may be used to validate the Business Architecture and also to
identify which data is held locally and which is accessed remotely.
The Data Architecture phase will focus on these issues, so at this point it may be appropriate to drop into a short
iteration of Data Architecture if it is deemed to be valuable to scope of the architecture engagement.
Using existing information in the baseline application catalog, the Application Architecture should identify user and
organizational dependencies on applications. This activity will support future state planning by determining impacted
user communities and also facilitating the grouping of application by user type or user location.
A key user community to be specifically considered is the operational support organization. This activity should
examine application dependencies on shared operations capabilities and produce a diagram on how each application is
effectively operated and managed.
Specifically considering the needs of the operational community may identify requirements for new or extended
governance capabilities and applications.
The following matrices should be considered for development within an Application Architecture:
-
System/Organization matrix
-
Role/System matrix
-
Application Interaction matrix
-
System/Function matrix
The structure of matrices is based on the attributes of metamodel entities, as defined in Part IV, Content Metamodel .
Identify Required Diagrams
Diagrams present the Application Architecture information from a set of different perspectives (viewpoints) according
to the requirements of the stakeholders.
Once the desired functionality of an application is known, it is necessary to perform an internal assessment of how the
application should be best structured to meet its requirements.
In the case of packaged applications, it is likely to be the case that the application supports a number of
configuration options, add-on modules, or application services that may be applied to the solution. For custom
developed applications, it is necessary to identify the high-level structure of the application in terms of modules or
sub-systems as a foundation to organize design activity.
The following diagrams should be considered for development within an Application Architecture:
-
Application Communication diagram
-
Application and User Location diagram
-
Enterprise Manageability diagram
-
Process/System Realization diagram
-
Application Migration diagram
-
Software Distribution diagram
-
Software Engineering diagram
The structure of diagrams is based on the attributes of metamodel entities, as defined in Part IV, Content Metamodel .
Identify Types of Requirement to be Collected
Once the Application Architecture catalogs, matrices, and diagrams have been developed, architecture modeling is
completed by formalizing the application-focused requirements for implementing the Target Architecture.
Within this step, the architecture engagement should identify types of requirement that must be met by the architecture
implementation, including:
-
Functional requirements
-
Non-functional requirements
-
Assumptions
-
Constraints
-
Domain-specific Application Architecture principles
-
Policies
-
Standards
-
Guidelines
-
Specifications
|